package com.code.leetcode._202503;
/**字符串转换整数***/
public class StringCovertNum {

    public static int myAtoi(String str) {
        int n = str.length();
        char[] chars = str.toCharArray();
        int idx = 0;
        //去除前导空格，如果去完前导空格无字符串了，返回0
        while (idx < n && chars[idx] == ' ') {
            idx++;
            if (idx == n) {
                return 0;
            }
        }
        //检查第一个字符： 可以为正负数/数字
        boolean isNeg = false;
        if (chars[idx] == '-') {
            idx++;
            isNeg = true;
        }else if (chars[idx] == '+') {
            idx++;
        }else if (!Character.isDigit(chars[idx])) {
            return 0;
        }
        int ans = 0;
        while (idx < n && Character.isDigit(chars[idx])) {
            int cur = chars[idx++] - '0';

            if (ans>(Integer.MAX_VALUE-cur)/10){
                return isNeg?Integer.MIN_VALUE:Integer.MAX_VALUE;
            }
            ans = ans * 10 + cur;
        }
        return isNeg ? -ans : ans;
    }


}
